<?php  
	//******************分类管理控制器******************
	class CategoryControl extends CommonControl{
		//保存模型属性
		public $model;
		//自动执行模型
		public function __auto(){
			$this -> model = K('Category');
		}

		//******************分类列表******************
		public function index(){
			//读取所有分类缓存的属性
			$data = $this -> model-> allCate;
			//目录树
			$data = Data::tree($data,'cname','cid');
			//分配变量
			$this -> assign('data',$data);
			//载入分类模板
			$this -> display();
		}

		//******************添加分类方法******************
		public function add(){
			//判断是否为POST提交
			if (IS_POST) {
				//create方法 执行模型中的自动验证和自动完成方法
				if(!$this -> model -> create()){
					//如果验证失败 提示错误信息
					$this -> error($this -> model -> error,U('Category/add'),5);
				}
				//执行模型中的添加方法
				$this -> model -> add_data();
				//添加成功
				$this -> success('添加成功',U('Category/index'));
			}
			//载入添加分类模板
			$this -> display();
		}

		//******************添加子类方法******************		
		public function add_son(){
			//判断是否为POST提交
			if(IS_POST){
				$this->model->add_data();
				$this->success('添加成功',U('index'));
			}
			//获得cid
			$cid = Q('get.cid', 0, 'intval');
			//获得父级分类名称
			$fatherCname = $this -> model -> get_one(array('cid'=>$cid),'cname');
			//分配变量
			$this->assign('fatherCname',$fatherCname['cname']);
			//载入添加子类模板
			$this->display();
		}

		//******************编辑分类方法******************
		public function edit(){
			//判断是否为POST提交
			if(IS_POST){
				//获得编辑的cid
				$cid = Q('get.cid',0,'intval');
				//执行模型中的编辑方法
				$this -> model -> edit($cid);
				//修改成功
				$this -> success('编辑成功',U('index'));
			}
			//获得cid
			$cid = Q('get.cid',0,'intval');
			//获得旧数据
			$oldData = $this -> model ->get_one(array('cid'=>$cid));
			//分配变量
			$this -> assign('oldData',$oldData);
			//获得所属分类内容
			$chooseCate = $this -> model -> get_choose_cate($cid);
			//目录树
			$chooseCate = Data::tree($chooseCate,'cname','cid');
			//分配变量
			$this -> assign('chooseCate',$chooseCate);
			//载入编辑分类模板
			$this -> display();
		}

		//******************删除分类方法******************
		public function del(){
			//获得cid
			$cid = Q('get.cid');
			//查询文章
			$arc = K('Article') -> get_data($cid);
			//判断是否有文章
			if ($arc) {
				//如果有文章 不执行删除
				$this -> error('改分类下有文章,请先删除文章');
			}
			//判断是否删除成功
			if($this -> model -> del_cate()){
				$this -> success('删除成功',U('index'));
			}
			$this -> error('改分类下有子分类,请先删除子分类');
		}

		//******************异步修改状态，包括1.列表静态2.内容静态3.是否显示******************
		public function ajax_update_stat(){
			//如果不是ajax直接反出
			if(!IS_AJAX) return;
			//执行模型修改方法
			$this -> model -> update_stat();
			//设置返回信息
			$ajax = array(
				'state' => 1, 
				'message' => '修改成功',
				'timeout'=>3
			);
			//返回给ajax信息
			$this->ajax($ajax);
		}
	}
?>